/**
 * 迷你区块链-test-chain
 * 区块链的生成，新增，校验
 * 交易
 * 非对称加密
 * 挖矿
 * p2p网络
 */

const crypto = require('crypto')
class Blockchain {
  constructor() {
    this.blockchain = []
    this.data = []
    this.difficulty = 4
    const hash = this.computeHash(0, '0', 1557065097426, 'Hello woniu-chain', 1)
    console.log(hash)
  }

  // 挖矿
  // 1. 生成新区块
  // 2. 不停算hash，知道符合条件，新增区块
  mine() {
    
  }

  // 生成新区块
  generateNewBlock() {

  }

  // 计算hash
  computeHash(index, prevHash, timestamp, data, nonce) {
    return crypto
            .createHash('sha256')
            .update(index + prevHash + timestamp + data + nonce)
            .digest('hex')
  }

  // 校验区块
  isValueBlock() {

  }

  // 校验区块链
  isValueChain() {

  }
}

let bc = new Blockchain()